package model

import (
	"common/global"
	"time"
)

type MedicalProductCategory struct {
	Id       int64     `gorm:"column:id;type:int;comment:分类ID;primaryKey;not null;" json:"id"`                         // 分类ID
	Pid      int64     `gorm:"column:pid;type:int;comment:父级ID，0表示顶级分类;not null;default:0;" json:"pid"`                // 父级ID，0表示顶级分类
	CateName string    `gorm:"column:cate_name;type:varchar(255);comment:分类名称;not null;" json:"cate_name"`             // 分类名称
	Sort     int64     `gorm:"column:sort;type:int;comment:排序;not null;default:0;" json:"sort"`                        // 排序
	Pic      string    `gorm:"column:pic;type:varchar(255);comment:分类图片;default:NULL;" json:"pic"`                     // 分类图片
	IsShow   int64     `gorm:"column:is_show;type:tinyint(1);comment:是否显示，1显示，0隐藏;not null;default:1;" json:"is_show"` // 是否显示，1显示，0隐藏
	AddTime  time.Time `gorm:"column:add_time;type:datetime;comment:添加时间;not null;" json:"add_time"`                   // 添加时间
}

func (m *MedicalProductCategory) TableName() string {
	return "medical_product_category"
}

func Scan(TopCategory int64) (int, error) {
	var categoryLevel int
	err := global.Db.Model(&MedicalProductCategory{}).Select("pid").Where("id = ?", TopCategory).Scan(&categoryLevel).Error
	if err != nil {
		return 0, err
	}
	return categoryLevel, nil
}

func Pluck(category int64) ([]uint, error) {
	var subCategoryIDs []uint
	subCategoryIDs = append(subCategoryIDs, uint(category))
	err := global.Db.Model(&MedicalProductCategory{}).Where("pid = ?", category).Pluck("id", &subCategoryIDs).Error
	if err != nil {
		return nil, err
	}
	return subCategoryIDs, nil
}
